package org.mantenimientojsf.persistencia;

import org.mantenimientojsf.beans.Computadoras;
import org.mantenimientojsf.beans.*;
import org.mantenimientojsf.controller.*;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
import java.util.*;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.util.Map;
import java.util.Iterator;
import java.util.HashMap;
import java.util.Map;
 import javax.sql.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.faces.context.FacesContext;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.el.ELContext;
import javax.faces.model.SelectItem;
import org.mantenimientojsf.generales.DataGManager;
import org.mantenimientojsf.generales.JSFUtil;


/**
*
* @author
*/

@ManagedBean
@SessionScoped
public class ComputadorasPersistencia implements Serializable {
private static final long serialVersionUID = 1L;
public static Exception excepcion;
public static boolean esMensaje = false;
public static Connection con = null;
static DataGManager dataGManager;
static List<Computadoras> list;

public ComputadorasPersistencia(){
     ELContext elContext = FacesContext.getCurrentInstance().getELContext();
     dataGManager =(DataGManager) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null,"dataGManager");
}


/**
*
* insert()
*/

public static boolean insert (Computadoras computadoras ) {
  excepcion = null;
  try {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
   
    departamentos.setIddepartamento(computadoras.getIddepartamento());
    estatus.setIdestatus(computadoras.getIdestatus());
    tipoperifericos.setIdtipoperiferico(computadoras.getIdtipoperiferico());
    unidad.setIdunidad(computadoras.getIdunidad());
   
      if(!departamentosController.exists(departamentos)){
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecordcodetable") + " departamentos");
           esMensaje = true;
           return false;
      }
      if(!estatusController.exists(estatus)){
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecordcodetable") + " estatus");
           esMensaje = true;
           return false;
      }
      if(!tipoperifericosController.exists(tipoperifericos)){
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecordcodetable") + " tipoperifericos");
           esMensaje = true;
           return false;
      }
      if(!unidadController.exists(unidad)){
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecordcodetable") + " unidad");
           esMensaje = true;
           return false;
      }

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pinsert = null;
      String sql = "insert into computadoras(idcomputadora,cpu,nombre,ip,mac,marca,modelo,color,iddepartamento,idtipoperiferico,password,idunidad,comentario,idestatus)  values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
      pinsert = con.prepareStatement(sql);
              pinsert.setString(1,computadoras.getIdcomputadora());
        pinsert.setString(2,computadoras.getCpu());
        pinsert.setString(3,computadoras.getNombre());
        pinsert.setString(4,computadoras.getIp());
        pinsert.setString(5,computadoras.getMac());
        pinsert.setString(6,computadoras.getMarca());
        pinsert.setString(7,computadoras.getModelo());
        pinsert.setString(8,computadoras.getColor());
        pinsert.setString(9,computadoras.getIddepartamento());
        pinsert.setString(10,computadoras.getIdtipoperiferico());
        pinsert.setString(11,computadoras.getPassword());
        pinsert.setString(12,computadoras.getIdunidad());
        pinsert.setString(13,computadoras.getComentario());
        pinsert.setString(14,computadoras.getIdestatus());
      int filas= pinsert.executeUpdate();
      pinsert.close();
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
 }


/**
*
* update()
*/

public static boolean update(Computadoras computadoras ) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pupdate = null;
      String sql = "update computadoras set  idcomputadora=?, cpu=?, nombre=?, ip=?, mac=?, marca=?, modelo=?, color=?, iddepartamento=?, idtipoperiferico=?, password=?, idunidad=?, comentario=?, idestatus=?  where  idcomputadora ='"+computadoras.getIdcomputadora()+"'  ";
      pupdate= con.prepareStatement(sql);
      pupdate.setString(1,computadoras.getIdcomputadora());
pupdate.setString(2,computadoras.getCpu());
pupdate.setString(3,computadoras.getNombre());
pupdate.setString(4,computadoras.getIp());
pupdate.setString(5,computadoras.getMac());
pupdate.setString(6,computadoras.getMarca());
pupdate.setString(7,computadoras.getModelo());
pupdate.setString(8,computadoras.getColor());
pupdate.setString(9,computadoras.getIddepartamento());
pupdate.setString(10,computadoras.getIdtipoperiferico());
pupdate.setString(11,computadoras.getPassword());
pupdate.setString(12,computadoras.getIdunidad());
pupdate.setString(13,computadoras.getComentario());
pupdate.setString(14,computadoras.getIdestatus());
      int filas= pupdate.executeUpdate();
      pupdate.close();
      if (filas <= 0){
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noupdate"));
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* update()
*/

public static boolean update(String sqlupdate ) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pupdate = null;
      String sql = "update  computadoras set " + sqlupdate +"";
      pupdate= con.prepareStatement(sql);
      int filas= pupdate.executeUpdate();
      pupdate.close();
      if (filas <= 0){
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noupdate"));
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* updatePrimaryKey()
*/

public static boolean updatePrimaryKey(Computadoras computadoras_old , Computadoras computadoras) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pupdate = null;
      String sql = "update computadoras set  idcomputadora=?  where  idcomputadora ='"+computadoras_old.getIdcomputadora()+"'  ";
      pupdate= con.prepareStatement(sql);
      pupdate.setString(1,computadoras.getIdcomputadora());
      int filas= pupdate.executeUpdate();
      pupdate.close();
      if (filas <= 0){
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noupdate"));
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* delete()
*/

public static boolean delete(Computadoras computadoras ) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pdelete = null;
      String sql = "delete from computadoras  where  idcomputadora = ?  ";
      pdelete= con.prepareStatement(sql);
      pdelete.setString(1,computadoras.getIdcomputadora());
      int filas= pdelete.executeUpdate();
      pdelete.close();
      if (filas <= 0){
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nodelete"));
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* delete()
*/

public static boolean delete(String sqldelete ) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pdelete = null;
      String sql = "delete from computadoras where " + sqldelete +"";
      pdelete= con.prepareStatement(sql);
      int filas= pdelete.executeUpdate();
      pdelete.close();
      if (filas <= 0){
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nodelete"));
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* deleteAll()
*/

public static boolean deleteAll() {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pdelete = null;
      String sql = "delete from computadoras  ";
      pdelete= con.prepareStatement(sql);
      int filas= pdelete.executeUpdate();
      pdelete.close();
      if (filas <= 0){
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nodeleteall"));
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* exists()
*/



public static boolean exists(Computadoras computadoras) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return false;
  }
      String sql = "select * from computadoras where idcomputadora='"+computadoras.getIdcomputadora()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return false;
   }
    rs.close();
    psquery.close();
 return true;
} catch (Exception ex) {
      excepcion = ex;
}
  return false;
}


/**
*
* findByPrimaryKey()
*/



public static Computadoras findByPrimaryKey(Computadoras computadoras) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
      String sql = "select * from computadoras where idcomputadora='"+computadoras.getIdcomputadora()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
   departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
   if (departamentos2== null) {
       //no existe registro con ese codigo 
   } else {
   departamentos= departamentos2;
   computadoras.setDepartamentos(departamentos);
     }
   estatus2 =  estatusController.findByPrimaryKey(estatus);
   if (estatus2== null) {
       //no existe registro con ese codigo 
   } else {
   estatus= estatus2;
   computadoras.setEstatus(estatus);
     }
   tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
   if (tipoperifericos2== null) {
       //no existe registro con ese codigo 
   } else {
   tipoperifericos= tipoperifericos2;
   computadoras.setTipoperifericos(tipoperifericos);
     }
   unidad2 =  unidadController.findByPrimaryKey(unidad);
   if (unidad2== null) {
       //no existe registro con ese codigo 
   } else {
   unidad= unidad2;
   computadoras.setUnidad(unidad);
     }
            computadoras.setIdcomputadora(rs.getString("idcomputadora"));
computadoras.setCpu(rs.getString("cpu"));
computadoras.setNombre(rs.getString("nombre"));
computadoras.setIp(rs.getString("ip"));
computadoras.setMac(rs.getString("mac"));
computadoras.setMarca(rs.getString("marca"));
computadoras.setModelo(rs.getString("modelo"));
computadoras.setColor(rs.getString("color"));
computadoras.setIddepartamento(rs.getString("iddepartamento"));
computadoras.setIdtipoperiferico(rs.getString("idtipoperiferico"));
computadoras.setPassword(rs.getString("password"));
computadoras.setIdunidad(rs.getString("idunidad"));
computadoras.setComentario(rs.getString("comentario"));
computadoras.setIdestatus(rs.getString("idestatus"));
    }
    rs.close();
    psquery.close();
 return computadoras;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByIdcomputadora()
*/

public static List<Computadoras> findByIdcomputadora(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where idcomputadora='"+computadoras.getIdcomputadora()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByCpu()
*/

public static List<Computadoras> findByCpu(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where cpu='"+computadoras.getCpu()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByNombre()
*/

public static List<Computadoras> findByNombre(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where nombre='"+computadoras.getNombre()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByIp()
*/

public static List<Computadoras> findByIp(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where ip='"+computadoras.getIp()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByMac()
*/

public static List<Computadoras> findByMac(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where mac='"+computadoras.getMac()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByMarca()
*/

public static List<Computadoras> findByMarca(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where marca='"+computadoras.getMarca()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByModelo()
*/

public static List<Computadoras> findByModelo(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where modelo='"+computadoras.getModelo()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByColor()
*/

public static List<Computadoras> findByColor(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where color='"+computadoras.getColor()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByIddepartamento()
*/

public static List<Computadoras> findByIddepartamento(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where iddepartamento='"+computadoras.getIddepartamento()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByIdtipoperiferico()
*/

public static List<Computadoras> findByIdtipoperiferico(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where idtipoperiferico='"+computadoras.getIdtipoperiferico()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByPassword()
*/

public static List<Computadoras> findByPassword(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where password='"+computadoras.getPassword()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByIdunidad()
*/

public static List<Computadoras> findByIdunidad(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where idunidad='"+computadoras.getIdunidad()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByComentario()
*/

public static List<Computadoras> findByComentario(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where comentario='"+computadoras.getComentario()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByIdestatus()
*/

public static List<Computadoras> findByIdestatus(Computadoras computadoras,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
      String sql = "select * from computadoras where idestatus='"+computadoras.getIdestatus()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* locateByParameters()
*/

public static List<Computadoras> locateByParameters(Map parametros,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<>();
  String sql = "select * from computadoras";
  if (parametros != null) {
      Iterator it = parametros.entrySet().iterator();
      StringBuilder sb = new StringBuilder("");
      int i = 0;
      while (it.hasNext()) {
          if (i != 0){
            sb.append(" and ");
         }
         i++;
        Map.Entry e = (Map.Entry) it.next();
        sb.append(e.getKey() +"= '"+  e.getValue()+"'");
      }
      if (!sb.toString().equals("")){
         sql = sql + " where " + sb.toString();
      }
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* Double fFunc(String funcion, String campo)
*/



public static Double func(String funcion, String campo) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return 0.0;
  }
      String sql = "select "+funcion+"("+campo+") as contador from computadoras";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return 0.0;
   }
    Double tmp =0.0;
   rs.beforeFirst();
   while (rs.next()) {
    tmp =  rs.getDouble("contador");
    }
    rs.close();
    psquery.close();
 return tmp;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0.0;
}


/**
*
* Double func(String funcion, String campo,String where)
*/



public static Double func(String funcion, String campo, String where) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return 0.0;
  }
      String sql = "select "+funcion+"("+campo+") as contador from computadoras where "+where +" ";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return 0.0;
   }
    Double tmp =0.0;
   rs.beforeFirst();
   while (rs.next()) {
    tmp =  rs.getDouble("contador");
    }
    rs.close();
    psquery.close();
 return tmp;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0.0;
}


/**
*
* count()
*/



public static Integer count() {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return 0;
  }
      String sql = "select count(*) as contador from computadoras";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return 0;
   }
   rs.beforeFirst();
   while (rs.next()) {
    x =  rs.getInt("contador");
    }
    rs.close();
    psquery.close();
 return x;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0;
}


/**
*
* count(String sqlquery)
*/



public static Integer count(String sqlquery) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return 0;
  }
      String sql = "select count(*) as contador from computadoras where  " + sqlquery +"";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return 0;
   }
   rs.beforeFirst();
   while (rs.next()) {
    x =  rs.getInt("contador");
    }
    rs.close();
    psquery.close();
 return x;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0;
}


/**
*
* query()
*/

public static List<Computadoras> query(String query,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<>();
  String sql = "select * from computadoras where " + query +"";
  if (query == null || query.equals("")) {
  return null;
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* getListRecords()
*/

public static List<Computadoras> getListRecords(Map parametros,boolean withRelation) {
  excepcion = null;
  try {

  con= dataGManager.getCon();
  if (con == null) {
      JSFUtil.addSuccessMessage(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<>();
  String sql = "select * from computadoras";
  if (parametros != null) {
      Iterator it = parametros.entrySet().iterator();
      StringBuilder sb = new StringBuilder("");
      while (it.hasNext()) {
        Map.Entry e = (Map.Entry) it.next();
        sb.append(e.getKey() +"="+  e.getValue());
      }
      if (!sb.toString().equals("")){
         sql = sql + " where " + sb.toString();
      }
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion = new Exception(ResourceBundle.getBundle("org/mantenimientojsf/properties/mensajes").getString("msg.nofoundrecords") + " computadoras");
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
       
Departamentos departamentos = new Departamentos();
Departamentos departamentos2 = new Departamentos();
DepartamentosController departamentosController = new DepartamentosController();
Estatus estatus = new Estatus();
Estatus estatus2 = new Estatus();
EstatusController estatusController = new EstatusController();
Tipoperifericos tipoperifericos = new Tipoperifericos();
Tipoperifericos tipoperifericos2 = new Tipoperifericos();
TipoperifericosController tipoperifericosController = new TipoperifericosController();
Unidad unidad = new Unidad();
Unidad unidad2 = new Unidad();
UnidadController unidadController = new UnidadController();
        Computadoras computadoras2 = new Computadoras(
         rs.getString("idcomputadora"),rs.getString("cpu"),rs.getString("nombre"),rs.getString("ip"),rs.getString("mac"),rs.getString("marca"),rs.getString("modelo"),rs.getString("color"),rs.getString("iddepartamento"),rs.getString("idtipoperiferico"),rs.getString("password"),rs.getString("idunidad"),rs.getString("comentario"),rs.getString("idestatus"));
            
    departamentos.setIddepartamento(rs.getString("iddepartamento"));
    estatus.setIdestatus(rs.getString("idestatus"));
    tipoperifericos.setIdtipoperiferico(rs.getString("idtipoperiferico"));
    unidad.setIdunidad(rs.getString("idunidad"));
            
  if(withRelation){
     departamentos2 =  departamentosController.findByPrimaryKey(departamentos);
     if (departamentos2== null) {
       //not found records 
     } else {
     departamentos= departamentos2;
     computadoras2.setDepartamentos(departamentos);
       }
   }
  if(withRelation){
     estatus2 =  estatusController.findByPrimaryKey(estatus);
     if (estatus2== null) {
       //not found records 
     } else {
     estatus= estatus2;
     computadoras2.setEstatus(estatus);
       }
   }
  if(withRelation){
     tipoperifericos2 =  tipoperifericosController.findByPrimaryKey(tipoperifericos);
     if (tipoperifericos2== null) {
       //not found records 
     } else {
     tipoperifericos= tipoperifericos2;
     computadoras2.setTipoperifericos(tipoperifericos);
       }
   }
  if(withRelation){
     unidad2 =  unidadController.findByPrimaryKey(unidad);
     if (unidad2== null) {
       //not found records 
     } else {
     unidad= unidad2;
     computadoras2.setUnidad(unidad);
       }
   }
       list.add(computadoras2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
 }


}
